<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>类型检测与类型转换的应用</title>
		<script>
			// 类型检测 的关键字是  typeof
			var n = 1;
			console.log(typeof n);  // number
			n = 1.1;
			console.log(typeof n);  // number
			var s = 'abc';
			console.log(typeof s); // string
			var v = undefined;
			console.log(typeof v);  // undefined
			var nu = null;
			console.log(typeof nu); // object
			var b = true;
			console.log(typeof b); // boolean
			
			// var name = prompt('请输入');
			// console.log(name);
			// console.log(typeof name);  // 用户输入的内容就是string类型
			console.log(1);
			console.log('1');
			console.log(true);
			console.log(undefined);
			console.log(null);
			
			//  数据类型的转换
			//  转换成为字符串
			/* 
			 转换方法一共有3个
			 1、 toString()方法
			 2、强制转换  String()
			 3、 隐式转换  加一个空字符串
			 */
			
			var num = 1;
			console.log(typeof num);
			console.log(typeof num.toString())
			var num2 = 2;
			console.log(typeof num2);
			console.log(typeof String(num2))
			var num3 = 3;
			console.log(typeof num3);
			var num3 = num3 + '';
			console.log(typeof num3);
			
			//  转换成为数字
			/* 
			 1、使用parseInt(参数) 转换成整数
			 2、使用ParseFloat(参数)  转换成为浮点数
			 3、 通过Number(参数) 进行强制类型转换
			 4、隐式转换  利用该运算符来进行  - * / 这三个当中的任意一个
			 */
			
			console.log(typeof parseInt('123'));
			console.log(parseInt('12.365'));
			console.log(parseInt('12.765'));  // 转换的时候取整数部分
			console.log(parseInt('120px'));  // 120
			console.log(parseInt('a220px'));  // NaN
			// 当一个字符串开头是数字的时候，我们可以通过parseInt把前边的部分转换成整数
			console.log(parseFloat('12.34'));
			console.log(typeof parseFloat('12.34')); // number
			console.log(parseFloat('120px'));  // 120
			console.log(parseFloat('a220px'));  // NaN
			console.log(Number('145'));
			console.log('11'+'12');
			console.log('12'-'1');
			console.log('12'*'2');
			console.log('12'/'2');
			console.log('--------------------');
			// 转换成布尔值
			// 我们需要通过 Boolean(参数) 这种方式来进行强制转换
			console.log(Boolean(''));
			console.log(Boolean(0));
			console.log(Boolean(NaN));
			console.log(Boolean(null));
			console.log(Boolean(undefined));
			//  在js中只有以上5个值进行布尔类型转换的时候会转换成false
			//  其它的全部转换成true
			
			
			console.log(Boolean('false'));
			console.log(Boolean(12));
			
			
			
		</script>
	</head>
	<body>
	</body>
</html>